mysql 如何按照索引横向拼接两张表的字段, 利用create table as, join on

您所在的位置:网站首页 sql 两个表拼接 mysql 如何按照索引横向拼接两张表的字段, 利用create table as, join on

mysql 如何按照索引横向拼接两张表的字段, 利用create table as, join on

2024-07-14 14:11| 来源: 网络整理| 查看: 265

我本来是建了两张表,各自都有 wind_code, date 两列索引,其它的字段不相同。现在为了数据更新方便点,我希望将两张表的字段拼接起来,最后还只保留两列索引。

假设两张表的名称是stock_est 和 stock_mf , 

我想把这两个表拼接成新的表叫stock_d,最初在我的SQL语句是这么写的 

create table stock_d as select * from stock_est a right join stock_mf b on a.wind_code = b.wind_code and a.date = b.date

结果报出错误 Error Code: 1060. Dublicate column name 'wind_cdoe' .  究其原因,是拼接两张表的时候因为各自都有wind_code 和 date列,所以新表里就会有两个同名的wind_code列,而这是不被允许的,结果就报错了。

我最后想的办法是先把一个表里的wind_code 和date列改下名称,例如在stock_mf表里,分别改为wind_code_mf 和date_mf,等新表拼接完后再把这两个重复列删去。

SQL 语句如下

create table stock_d as select * from stock_est a right join stock_mf b on a.wind_code = b.wind_code_mf and a.date = b.date_mf

最后 delete wind_code_mf, date.mf from stock_d , 大功告成!

Reminder: 在用delete 命令的时候一定要再三check后运行,千万不要不小心把表给删没了,血的教训呐!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3